<?php
namespace app\api\validate;

use think\Validate;
use think\Exception;
use think\Request;
use app\lib\exception\ParameterException;

class BaseValidate extends Validate
{
	//将多个类都要用的，应该改写到基类里来。

	public function goCheck()
	{
		// 获取http传入的参数
		//　对这些参数做检验
		$request = Request::instance();
		$params = $request->param();

		$result = $this->batch()->check($params);  //多参数校验，批量验证。
		if(!$result){
			$e = new ParameterException([//这种写法，比下面的"->"写法更好，简洁。更面向对象。创建时并给其赋值
				'msg' => $this->error,//传递到构造函数里去。
				// 'code' => 400,
				// 'errorCode' => 10002
			]);
			// $e->msg = $this->error;
			// $e->errorCode = 10002;
			throw $e;
			
			// $error = $this->error;
			// throw new Exception($error);//手动抛出异常

		}else{
			return true;
		}
	}

	//　自定义验证规则
	// 验证ＩＤ必须为正整数
	protected function isPositiveInteger($value, $rule = '', $data = '', $field = "")
	{
		if(is_numeric($value) && is_int($value + 0) && ($value + 0) > 0){
			return true;
		}else{
			// return $field.'必须是正整数';
			return false;
		}
	}

	// 判断是否为空值
	protected function isNotEmpty($value, $rule = '', $data = '', $field = "")
	{
		if(empty($value)){
			return false;
		}else{
			return true;
		}
	}
}